--[[
    动态获取ip后，连上PC调试工具启动的MQTT Server，配合测试mqtt相关功能
--]]
-------------------模块区-------------------
local logger = require("dx_logger")
local net = require("dx_net")
local util = require("dx_util")
local mqtt = require("mqtt")
-------------------变量区-------------------

-------------------函数区-------------------
local function get_ip()
    while 1 do
        -- 动态获取ip需要一定时间，需要等待大概几秒
        local net_param_ip = net.vbar_net_get_mode_by_card().ip
        local ip = ""
        for i = 1, 20 do
            if (net_param_ip[i - 1] ~= 0) then
                ip = ip .. string.char(net_param_ip[i - 1])
            end
        end
        if (#ip > 0) then
            logger.debug("ip=" .. ip)
            break
        end
        util.sleep(1)
    end
end

local function init_net()
    -- 初始化网络
    logger.info("网络配置初始化动态IP地址")
    net.net_init()
    net.vbar_net_card_enable()
    -- 2 表示动态模式
    net.vbar_net_set_mode_by_card(2, nil)
    local net_param = net.vbar_net_get_mode_by_card()
    logger.info("请等待IP地址获取...")
    get_ip()
end

local function main()
    init_net()
    mqtt.init()
end

-------------------主流程-------------------
main()
